<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>数组</title>
</head>
<body>
    <script>
  /*   1.概念
       数组： Array 可以包含任意类型的数据，并且这组数据是顺序存储的，可以按照索引来读写。
       数组就是一个存储数据的容器。
       我们把数组中的数据称之为“元素”，每个元素对应的下标称之为“索引”。
       索引值从0开始
 */
                var arr = [1,2,3,"hello",true,"world",undefined];
 //   2.数组的读写（获取/储存数据）操作
       //（1.） slice (切片) ；通过这个方法可以截取array中的部分元素,并且会返回一个新的array。
       //       slice是一个方法

 
                  var arr2 = arr.slice(0,3);//从索引 0 开始，到索引3结束，但不包含索引为3的数据。
 
                  console.log(arr2);
                  console.log(arr.slice(4));//从索引 4 开始  到结束

                  var arr3 = arr.slice()
                  console.log(arr3);//从头开始  到结尾，复制了一个数组。

                  console.log(arr === arr3);         //false
       //（2.）push,pop
            // push(),该方法可以向array的末尾添加若干方法。
                  var myArr = [1,2,3,4];
                  myArr.push('a','c','d','m','o','y');     //Array [ 1, 2, 3, 4, "a", "c", "d", "m", "o", "y" ]
                  console.log(myArr);
            // pop(),该方法 删除array中最后一个元素
                  var myArr = [1,2,3,4];
                  myArr.pop();//删除了4    Array [ 1, 2 ，3]
                  myArr.pop();//删除了3    Array [ 1, 2 ]
                  console.log(myArr);
           //（3.）unshift,shift
                  //unshift 头部添加       
                  var myArr = [1,2,3,4];
                  myArr.unshift('a','a');//往myArr的头部添加   Array [ "a", "a", 1, 2, 3, 4 ]
                  console.log(myArr);
                  //shift 删除头部第一个元素        
                  var myArr = [1,2,3,4];
                  myArr.shift();//往myArr的头部添加   Array [ 2, 3, 4 ]
          //(4.) splice()该方法是修改array的“万能钥匙”
                  var name_arr = ['张三','李四','王五','陈六','小红','小明']  //Array [ "张三", "李四", "王五", "小红", "小明" ]

                  name_arr.splice(3,1);
                  console.log(name_arr);

                  // para1: 从第几个元素开始删除
                  // para2： 表示删除若干个元素
                  // para3：表示插入数组中的元素
                  //name_arr.splice(para1,para2,para3);
                  var name_arr = ['张三','李四','王五','陈六','小红','小明']
                  name_arr.splice(1,0,'牛牛','雅雅','菲菲');
                  console.log(name_arr);

                  //（5.）sort():该方法可以对数组中的内容进行排序
                  var letter_arr = ['u','n','p','y','s','d','f']
                  letter_arr.sort();
                  console.log(letter_arr);
                  //（6.）reverse():该方法可以对数组中的内容进行反转
                  letter_arr.reverse();
                  console.log(letter_arr);
                  //（7.）concat()
                  var foot_arr = ['面条','烤鱼','包子','红薯'];
                  var fruit_arr = ['橘子','草莓']
                  var total_arr = foot_arr.concat(fruit_arr);
                  console.log(total_arr);
                  //(8.)join()，将数组中的元素用指定字符链接，并返回一个字符串
                 var str = total_arr.join('/');
                 console.log(str);

                 //
                 var goodsArr = ['雪碧','七喜','杯子','鼠标'];
                 console.log(goodsArr.length);//arr.length获取数组中元素的个数.
                 for(var i = 0 ;i < goodsArr.length;i++){
                     var item = goodsArr[i];//arr[index]获取到数组中对应索引的元素
                     console.log(item);
                 }

                 //  ['a','a','a','a','a','a',]
                 var a_arr =  ['a','a','a','a','a','a',];
                  for(var i = 0 ;i < a_arr.length;i++){
                  var item = a_arr[i] + i;
                  console.log(item);
                 }














    </script>
</body>
</html>